Android 开发链接本地mysql

您所在的位置:网站首页 android mysql发布sku Android 开发链接本地mysql

Android 开发链接本地mysql

2023-07-23 04:56| 来源: 网络整理| 查看: 265

1.加载jar包

在这里插入图片描述 在这里插入图片描述 最后查看项目依赖看到一下效果说明jar包加载成功 在这里插入图片描述

2.baseDao编码

注意在安卓中 的jdbc:mysql://ip:3306/musicdb ip不可以使用127.0.0.1以及localhost

```java package com.examplehq.musicdemo.dao; import android.util.Log; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class BaseDao { /*** * 数据库驱动 */ private static String driver="com.mysql.jdbc.Driver"; /** * 数据库路径 * */ private static String url="jdbc:mysql://192.168.1.104:3306/musicdb"; /** * 用户名 */ private static String user="sa"; /** * 密码 */ private static String password="sa"; /** * 加载驱动类(只需要加载一次) static{} -- 静态块 * * */ static{ try { Class.forName(driver); Log.i("TAG", "加载驱动成功: "); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 打开连接 抛出异常 交给调用者处理 * @return * @throws SQLException */ public static Connection getConnection() throws SQLException{ Connection conn= null; Log.i("url", url); conn=DriverManager.getConnection(url, user, password); Log.i("TAG", "数据库链接成功: "); return conn; } /** * 关闭数据库资源从小到大 * @param conn * @param ps * @param rs */ public void closeAll(Connection conn, PreparedStatement ps,ResultSet rs) { try { if (rs!=null) { rs.close(); }if (ps!=null) { ps.close(); }if (conn!=null) { conn.close(); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } public int myExecutteUpdate(String sql,Object...pars){ int result =0; Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; try { conn=getConnection(); ps=conn.prepareStatement(sql); if (pars!=null&& pars.length!=0) { for (int i = 0; i // TODO: handle exception e.printStackTrace(); }finally { closeAll(conn, ps, rs); } return result; } } 3.配置清单文件

在这里插入图片描述

4.编写实现代码usersDaoImpl /** * 资源 * @param users * @return */ Connection conn =null; PreparedStatement ps=null; ResultSet rs=null; @Override public Users login(Users users) { Users us=null; try { conn=BaseDao.getConnection(); String sql="SELECT*FROM users WHERE userNumber =? AND password=? AND state!=0"; ps=conn.prepareStatement(sql); ps.setString(1, users.getUserNumber()); ps.setString(2, users.getPassword()); rs=ps.executeQuery(); if (rs.next()) { us=new Users(); us.setId(rs.getInt("id")); us.setUserName(rs.getString("userName")); } } catch (SQLException e) { e.printStackTrace(); }finally { closeAll(conn, ps, rs); } return us; } 5.调用login方法(安卓中网络链接须在线程中完成) public void onLoginClick(View view) { String phone = mInputPhone.getInputStr(); String pwd =mInputPwd.getInputStr(); //验证用户输入是否合法 if (!UersUtils.valdateLogin(this,phone,pwd)){ return; }else { //创建一个线程来连接数据库并获取数据库中对应表的数据 new Thread(new Runnable() { @Override public void run() { // 调用数据库工具类DBUtils的getInfoByName方法获取数据库表中数据 Users us = usersDaoImpl.login(new Users(mInputPhone.getInputStr(), mInputPwd.getInputStr())); if (us != null) { Looper.prepare(); Toast.makeText(mContext, "登录成功", Toast.LENGTH_SHORT).show(); Looper.loop(); } else { Looper.prepare(); Toast.makeText(mContext, "登录失败", Toast.LENGTH_SHORT).show(); Looper.loop(); } } }).start(); } }

附加使用中遇到的问题: 1、如果mysql没有设置远程链接权限出现1130异常可以在mysql库user表中将host修改成%然后重启Mysql服务 在这里插入图片描述 2.线程中弹窗出现一下异常 在这里插入图片描述

在代码中加入 Looper.prepare(); Toast.makeText(mContext, “登录失败”, Toast.LENGTH_SHORT).show(); Looper.loop(); 即可解决!

新手上场有问题请指出,谢谢!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3